#include <iostream>
#include <vector>
#include <functional>

// 事件类型枚举
enum class EventType {
    EVENT_1,
    EVENT_2,
    EVENT_3
};

// 事件处理器
class EventHandler {
public:
    // 注册回调函数
    void registerCallback(EventType event, std::function<void()> callback) {
callbacks[static_cast<int>(event)].push_back(callback);
    }

    // 触发事件
    void triggerEvent(EventType event) {
        for (auto& callback : callbacks[static_cast<int>(event)]) {
            callback();
        }
    }

private:
    std::vector<std::function<void()>> callbacks[3]; // 事件回调函数列表
};

int main() {
    // 创建事件处理器
    EventHandler eventHandler;
    // 注册事件1的回调函数
    eventHandler.registerCallback(EventType::EVENT_1, []() {
        std::cout << "Event 1 occurred!" << std::endl;
    });
    // 注册事件2的回调函数
    eventHandler.registerCallback(EventType::EVENT_2, []() {
        std::cout << "Event 2 occurred!" << std::endl;
    });
    // 触发事件
    eventHandler.triggerEvent(EventType::EVENT_1);
    eventHandler.triggerEvent(EventType::EVENT_2);

    return 0;
}